#ifndef HASIO_ERROR_HPP
#define HASIO_ERROR_HPP

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)

#include "error_code.hpp"

namespace hasio {
namespace error {

enum basic_errors
{
    bad_descriptor = EBADF,
};

inline hasio::error_code make_error_code(basic_errors e)
{
  return hasio::error_code(
      static_cast<int>(e), std::system_category());
}

}
}


namespace std {

template<> struct is_error_code_enum<hasio::error::basic_errors>
{
    static const bool value = true;
};

}

#endif // HASIO_ERROR_HPP